package org.tp;

import org.tp.*;
import java.util.*;
/** stock les structures dans une hashmap en fonction du nom**/
public class Struct {
	HashMap<String,Variable> struct;
	boolean alloc=false;
	public Struct(){
		struct = new HashMap<String, Variable>();
	}
/** permet de savoir si la structure a ete allouee**/
	public boolean getAlloc(){
		return alloc;
	}
/** permet de signaler que la structure a ete alloue**/
	public void Alloc(){
		alloc=true;
	}
	/** ajout des variables contenue dans une liste dans la structure**/

	public Struct(List<Variable> l){  //table de hash avec comme clef le nom de la variable.
		for(Variable v: l){
			struct.put(v.getid(),v);
		}
	}
	/** ajout d'une variable simple 
	 * id , type, arguments (Absynt)**/
	public void addVar(String id, Type type, Object value){
		struct.put(id,new Variable(id, type,value));

	}
	/** recuperation d'une variable**/
	public Variable getVar(String nom){
		return this.struct.get(nom);
	}
/** modifier la valeur d'une variable (non utilise)**/
	public void setValeurVariable(String nom, Object val){
		struct.get(nom).setVal(val);
	}
/** afficher la structure**/
	public void structToString()
	{
		HashMap<String, Variable> HM = new HashMap<String, Variable>();
		HM = struct;
		for(String i : HM.keySet())
		{
			HM.get(i).varToString();
		}	
	}

}


